Skip to content

ci: workflow_dispatch release — no more local tag pushes#4

Merged
jlc488 merged 1 commit into
mainfrom
feature/dispatch-release
Jul 17, 2026
Merged

ci: workflow_dispatch release — no more local tag pushes#4
jlc488 merged 1 commit into
mainfrom
feature/dispatch-release

Conversation

@jlc488

@jlc488 jlc488 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Why / 왜

릴리스마다 로컬에서 태그를 만들어 푸시해야 했고, 이번 주에 그 푸시가 세션 권한 레이어에 두 번 막혀 수동 터미널 작업이 됐습니다. 태그 푸시 자체를 없애면 마찰 지점이 근본적으로 사라집니다.

What / 무엇

gh workflow run publish.yml -f version=vX.Y.Z

한 줄이면: package.json 버전 일치 검증 → typecheck/test/build → npm publish → 태그 생성 + GitHub Release 생성 (해당 버전의 CHANGELOG 섹션을 릴리스 노트로 추출 — 이중언어 수기 CHANGELOG 컨벤션 유지, 0.1.0 때 수동으로 한 release 생성도 자동화).

  • 태그 푸시 릴리스는 fallback으로 유지되며, 이제 Release 자동 생성까지 동일하게 받음
  • permissions.contents: write — Release/태그 생성에 필요 (기존 read)
  • CHANGELOG 추출 스크립트는 실제 0.1.0 섹션으로 로컬 검증 완료, YAML 파싱 검증 완료

New release flow / 새 릴리스 플로우

  1. 버전 bump + CHANGELOG PR → 머지 (사람이 하는 유일한 일)
  2. gh workflow run publish.yml 디스패치 → 나머지 전부 CI

Releasing previously required a local tag push, which the session
permission layer blocked twice this week, falling back to manual terminal
work. The workflow now supports dispatch with a version input:
verifies the version against package.json, runs the full check suite,
publishes to npm, and creates the tag AND the GitHub Release with notes
extracted from that version's CHANGELOG section (bilingual notes preserved —
this also automates what was a manual release-create step for 0.1.0).
Tag-push releases still work as a fallback and now get the same auto-created
Release. permissions.contents: write is required for the Release step.
@jlc488
jlc488 merged commit 87076fe into main Jul 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant